
short int vComplete (short int sudoku[9][9])
{
	// XY -> x| 1válido     y|1completo
	short int linha,coluna,zCounter=0, isComplete=10;
	int somatorio1=0,somatorio2=0,produtorio2=1,produtorio1=1;
	for (linha=0;linha<9;linha++)
	{
		for (coluna=0;coluna<9;coluna++)
		{
			if (sudoku[linha][coluna]==0)
			{
				zCounter++;
			}
		}
	}
	//zCounter acima;

	if (zCounter==0)
	{
		isComplete++;
		for (linha=0;linha<9;linha++)
		{
			for (coluna=0;coluna<9;coluna++)
			{
				somatorio1 = somatorio1 + sudoku[linha][coluna];
				produtorio1 = produtorio1 * sudoku[linha][coluna];
				somatorio2 = somatorio2 + sudoku[coluna][linha];
				produtorio2 = produtorio2 * sudoku[coluna][linha];
				isComplete = (coluna==8 && (somatorio1!=45 || produtorio1!=362880 || somatorio2!=45 || produtorio2!=362880)) ? 1:isComplete;
			}
			somatorio1=0;
			somatorio2=0;
			produtorio1=1;
			produtorio2=1;
		}

	}
	return isComplete;
}